Automatic digital curation and tagging of action videos

ABSTRACT

A system and method for automatic digital curation, annotation, and tagging of action videos receives, in a processing system, GPS data, and in some embodiments inertial data, from a sensor-based device carried by a sportsman during a sporting activity. The processing system processes the GPS data and the inertial data, if present to identify at least one sportsman event, and stores data identifying the sportsman event in a performance database. Video data from a video camera is stored in a video database, the video data including location, time, and direction information associated with frames of video. Timecode data in the video database is synchronized with timecode data in the performance database, and the data identifying the sportsman event is used to automatically select, annotate, tag or edit said video data.

This application claims priority to U.S. Provisional Patent Application Ser. No. 61/689,654, filed Jun. 11, 2012 entitled “Auto Digital Curation And Tagging Of Action Videos,” which is incorporated herein by reference in its entirety.

This application includes material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office files or records, but otherwise reserves all copyright rights whatsoever.

FIELD

The present invention relates in general to the field of devices for recording video, and in particular to methods and apparatuses for automatic digital curation and tagging of action videos.

BACKGROUND

The wide availability of portable cameras has led to an explosion of short self-made and professional videos. Many of these videos, especially made with POV (Point Of View) action cameras, are related to action sports such as downhill skiing, snowboarding, surfing, mountain biking, etc. The YouTube web site, for example, contains thousands of such videos.

At the same time, the very number and popularity of these videos created its own problem. Firstly, it has become very difficult to find a video of interest when the event of interest is not explicitly associated with the video by its creators. Secondly, since most of the videos are made by amateurs and are not edited, users have to watch the entire video even if they are interested only in some particular portion of it e.g. when a snowboarder jumps or a skier has a particularly fast portion of a run, or any other particular events within a larger video.

At the same time the wide popularity of portable devices with GPS and other sensors allows accurate measurement, storage, and classification of action sport activities. Therefore, if video and performance data can be synchronized in time and space then video footage can be annotated, edited, selected, and tagged based on the performance matrix of a particular activity that was filmed.

A person searching or viewing such video may desire to find particular video or portions of a video. For example, such person may want to search for video that shows snowboarding jumps with air time longer than one second. However, this would be impractical or impossible using the currently available means for video tagging which typically use only semantic and text video descriptions.

Another issue associated with many action videos is that they are made by one person and performance data for the video “subject” are collected by the sensors collocated with the video subject who is a different person.

Attempts have been made to mark video during capture for quick selection. However, such solutions typically use tags that are based on text that is created by others or found in the video.

U.S. Pat. No. 7,624,337 and U.S. Pat. No. 7,823,055 disclose a solution that uses text, including text in the video, to create tags and meta data for later use in video searching.

U.S. Pat. No. 5,832,171 to Heist, et al. describes synchronization of video and text where the text was created for the video.

U.S. Pat. No. 4,873,585 to Blanton et al teaches a system that allows selection of images of particular motions from a video to allow easy access to these images. However, this requires operator intervention and decision making.

U.S. Pat. No. 7,483,049 to Aman et al. discloses creation of a database of videos of sport motions. However, the video has to be created in a very controlled environment by multiple cameras with athletes marked with visible or invisible markers that can be identified in the video.

There is also a body of work on triggering video by particular events, mostly traffic violations. U.S. Pat. No. 7,986,339 to Higgins describes a system capable of recording and analyzing still and video images of a traffic violation. However, the video recording is triggered by an outside physical signal that is generated by a vehicle, e.g. laser or Doppler radar. U.S. Pat. No. 6,919,823 to Lock and U.S. Pat. No. 7,633,433 to Behrens are similar, with a triggering signal generated by a red light change or a laser beam interrupted after the red light change.

In addition, in the above cases, the relative position of a camera and the video subject are known in advance, and so the solution does not provide any time and space domain search to match the event and the video footage.

SUMMARY

In an embodiment, the present disclosure provides a method and a system that allows synchronization of the video and the corresponding performance data, and then tagging and/or editing of the video based on the performance data. The video and the performance data can be collected by a collocated device (i.e., the same device) or different devices and different users. The video and performance data could also be stored in the same device or be stored in different devices or databases. The invention can thus provide matching of video and performance data from different data sets or different databases and then automatic editing, annotation, and tagging of the video. This can be done even if the video and performance data were recorded independently and without explicit knowledge of other activity.

The invention receives, in a processing system, GPS data, and in some embodiments inertial data, from a sensor-based device carried by a user, which in some embodiments is a sportsman during a sporting activity. The GPS data may be position data or time data, or both position and time data. The processing system processes the GPS and optional sensor data to identify at least one event, e.g., a sporting event, and stores data identifying the event in a performance database. Video data from a video camera is stored in a video database, the video data including location, time, and direction information associated with frames of video. Timecode data in the video record is synchronized with timecode data in the performance record, and the data identifying the event is used to automatically select, annotate, tag or edit said video data.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features, and advantages of the invention will be apparent from the following more particular description of preferred embodiments as illustrated in the accompanying drawings, in which reference characters refer to the same parts throughout the various views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating principles of the invention.

FIG. 1 shows a flowchart illustrating an embodiment of a method for automatic selection of a desired portion of video footage from an action video when sensors are collocated with the video camera.

FIG. 2 shows a three-dimensional diagrammatic view illustrating a scenario in which a skier's trajectory crosses a field of view of Camera A but does not cross a field of view for Camera B.

FIG. 3 shows a flowchart illustrating an embodiment of an appropriate algorithm which searches a database of active cameras.

FIG. 4 shows a block diagram illustrating organization of the video and performance databases in accordance with an embodiment of the invention.

FIG. 5 shows a flowchart illustrating a process for using performance meta data for search simplification.

DETAILED DESCRIPTION

Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings.

The present invention is described below with reference to block diagrams and operational illustrations of a system and method for automatic digital curation and tagging of action videos. It is understood that each block of the block diagrams or operational illustrations, and combinations of blocks in the block diagrams or operational illustrations, may be implemented by means of analog or digital hardware and computer program instructions. These computer program instructions may be stored on computer-readable media and provided to a processor of a general purpose computer, special purpose computer, ASIC, or other programmable data processing apparatus, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, implement the functions/acts specified in the block diagrams or operational block or blocks. In some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the operational illustrations. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.

In an embodiment, a user is equipped with a sensor-based device that records his/her motions. The sensor-based device may be, e.g., a portable device that includes GPS and inertial sensors. Also provided is a processing system, which may be embedded in the sensor-based device, may be a separate device, or may be server-based, that is capable of detecting such events as jumps, flips, rotations, high speed, fast turns, etc. As a result, a detailed record of the motions with detailed trajectory, speed, acceleration, jumps, tricks, etc. is created and stored in a performance database. Also provided is a video camera for which location, time, and, optionally, direction information are known for the time when video is taken. The camera may be collocated with the sensors, or may be an independent device.

The following is a non-limiting example of the operation of the system and method in accordance with an embodiment of the invention. A video camera records a sports activity that occurs between time t=T_(start) and t=T_(end). In this example, the same activity performance parameters have also been recorded using a set of sensors. A particular event of interest, e.g. a jump, is detected using sensory data at time t=t_(k), T_(start)<t_(k)<T_(end). Then, if sensory data and video are time-synchronized, the video footage of the event of interest can be cut out between time t_(k−T) and t_(k+T) where T is a half period of the desired video footage. In an embodiment, if video is shorter than a desired time 2 T, then the entire video is used. Time synchronization between video and sensor data can be conducted using GPS Time stamps, or wireless network time stamps, or any other method known to those who are proficient in the art.

FIG. 1 shows a flowchart illustrating an embodiment of a method for automatic selection of a desired portion of video footage from an action video when sensors are collocated with the video camera. Time and position coordination allows a system to automatically associate video footage and sport performance. If camera position, direction, and focus length are known, then a more sophisticated paring between video and sensory data can be made. The method begins with a step 101 wherein time is synchronized between video and sensor records. At step 103, an event of interest is selected based on sensor data. This event may be, e.g., a jump, a flip, a rotation, a high speed portion, a turn, a fast turn, or any other finite portion of a user's performance that may be of interest. At step 105, the processing device automatically determines where the event of interest occurs in the sensor data, with t=T_(sns). Various systems and methods for identifying an event of interest in sensor data are taught, for example, in U.S. patent application Ser. No. 13/612,470 entitled “Method and Apparatus for Determining Sportsman Jumps Using Fuzzy Logic” filed Sep. 12, 2012, the entire disclosure of which is incorporated herein by reference.

With continued reference to FIG. 1, at step 107, the time determined in step 105 above is transferred into the time frame of video in the video database such that Tv=Sync(T_(sns)). Then, at step 109, the video between Tv−T:Tv+T is selected. Performance data is then embedded (displayed, annotated) in the video data at step 111. The video data may be automatically tagged with performance data at step 113. The automated tagging may include user name, event time and location, and the key performance characteristics such as speed, slope value, jump time and/or height, flip angle, or trade name, etc. Alternatively, or in addition, the video may then be automatically edited step 111 is complete.

It will be understood by those skilled in the art that a similar operation can be done by selecting an appropriate performance segment when a video is short and a performance record covers a much longer overlapping time period.

FIG. 2. shows a three-dimensional diagrammatic view illustrating a scenario in which a skier's trajectory crosses the field of view of Camera A but does not cross the field of view for Camera B. If an event of interest occurs during the time that camera A is operational then the appropriate footage can be identified and selected. The trajectory of Event B does not cross any camera field of view, and cannot be synchronized. This implementation illustrates a possible case where multiple unattended cameras constantly record any activity in their field of view and then a video of interest is auto selected based on the performance, time, and location data that are collected separately.

FIG. 3. shows a flowchart illustrating an embodiment of an appropriate algorithm which searches a database of active cameras. At step 301, an event of interest is identified using sensor data. As noted above, such event may be, a jump, a flip, a rotation, a high speed portion, a turn, a fast turn, or any other finite portion of a user's performance that may be of interest. Once the event is identified, at step 303 the processing system determines the geographic position and time duration of the event. At step 305, the processing system finds all cameras that are operational at time T_(k) (determined in step 303 above). If there are no cameras operational, as determined at step 307, the process ends. Otherwise, the process proceeds to step 309, in which operational cameras or camera data are time synchronized with sensors or sensor data. Once the operational cameras or their data are time synchronized with sensors or sensor data, the process proceeds to select, at step 311, a subset of the cameras that has the position of the event (as determined above in step 303) in their field of view. If there are no such cameras, as determined at step 313, the process ends. Among the previously selected subset of cameras, a further subset of cameras is selected at step 315, this further subset being those cameras or camera data that meet other criteria. Examples of such other criteria include, e.g., the camera that has the best focus. From the further subset of cameras, the video footage recorded at time T_(k−T):T_(k+T) is selected at step 317. At step 319, the performance data for the event of interest, or for all of the performance, is embedded into the video data. Finally, the video data is tagged with performance data as well as with other information—time, location, user, at step 321.

FIG. 4. shows a block diagram illustrating an example of the organization of the video and performance databases in accordance with an embodiment of the invention. FIG. 5 shows a flowchart illustrating a process for using performance meta data for search simplification.

Thus, an embodiment of the presently disclosed system and method allows editing, annotation, and searching of an individual video or a video library by performance characteristics. A subject selection can be further refined by selecting performance data from the users that belong to a particular subgroup, say “friends”. Suppose several users have performance data trajectory that corresponds to a particular video clip. However, only one user among them belongs to the “friends” subgroup of the person who made the video. Then the performance data of this “friend” can be automatically selected to be synchronized with the video. This resolves a common situation wherein a person records a video of his or her friends and other people activity are also recorded in the frame. The automatic selection in accordance with various embodiments of the invention can further improve the performance of the system and simplifies the process of video creation.

The processing steps described herein may be performed on one or more computing devices. For example, the steps may be performed on any combination of (a) a portable data collection device carried by the user, (b) a portable video recording computing device carried by a spectator at a sporting event or by a user participating in the event, or (c) a remote server computing device. An example of portable data collection devices is a portable computing device or smartphone with an accelerometer and GPS capability therein. Examples of a portable video recording computing device include a video camera with processing capability, or a smart phone with video recording hardware and software. Each such computing device may comprise, e.g., a processor for carrying out instructions; computer readable media such as static memory and/or dynamic memory for storing computer program instructions; input means such as a touch screen, keyboard, voice input, mouse, or the like; a network interface for communicating over a wireless and/or wired network, and a user interface such as a display, speaker, and hard or soft buttons. The portable data collection device may further include an accelerometer, such as a three-axis accelerometer, and may also include a GPS receiver and the capability to determine its position using the same. The remote server computing device may be a device that is remote from the portable data collection device. For example, server or desktop computer may be provided and process raw or preprocessed accelerometer data from the portable data collection device. The transmission of data from a portable data collection device to the computing device or to the remote server computing device may be performed via a wireless and/or wired network interface associated with the portable data collection device and a wireless and/or wired network interface associated with the remote server or remote desktop computer.

The above embodiments and preferences are illustrative of the present invention. It is neither necessary, nor intended for this patent to outline or define every possible combination or embodiment. The inventor has disclosed sufficient information to permit one skilled in the art to practice at least one embodiment of the invention. The above description and drawings are merely illustrative of the present invention and that changes in components, structure and procedure are possible without departing from the scope of the present invention as defined in the following claims. For example, elements and/or steps described above and/or in the following claims in a particular order may be practiced in a different order without departing from the invention. Thus, while the invention has been particularly shown and described with reference to embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention. 

What is claimed is:
 1. A method, comprising: receiving, in a processing system, GPS data from a device carried by a user or attached to sports equipment during a sporting activity, said GPS data comprising at least one of: position data or time data; processing said GPS data in said processing system to identify at least one event engaged in by the user; storing data identifying said at least one event in a performance record; storing video data in a video record, the video data having meta data comprising at least time and location information associated with frames of video; synchronizing timecode data in said video records with timecode data in said performance records; and, using said data identifying at least one event to automatically select, annotate, tag or edit said video data.
 2. The method according to claim 1, wherein said device carried by a user comprises a sensor-based device, wherein said receiving step comprises receiving inertial data from the sensor-based device, and wherein said processing step comprises processing said inertial data.
 3. The method according to claim 1, wherein the user is a sportsman and the event is a sporting event.
 4. The method according to claim 1, wherein said performance record comprises a performance database.
 5. The method according to claim 1, wherein said video record comprises a video database.
 6. The method according to claim 1, wherein said metadata further comprises direction information.
 7. The method according to claim 1, wherein said step of synchronizing timecode data in said video records with timecode data in said performance records is conducted using GPS Time stamps.
 8. The method according to claim 1, wherein said step of synchronizing timecode data in said video records with timecode data in said performance records is conducted using wireless network time stamps.
 9. The method according to claim 1, wherein said at least one event identified by said processing system comprises an event selected from the set consisting of: a jump, a flip, a rotation, a high speed portion, a turn, or a fast turn.
 10. The method according to claim 1, wherein the device is a portable device comprising at least one GPS sensor and at least one inertial sensor.
 11. The method according to claim 1, wherein said processing system is embedded in said device.
 12. The method according to claim 1, wherein said processing system is a separate device from said device.
 13. The method according to claim 1, wherein said processing system is a server.
 14. The method according to claim 2, wherein said GPS data and said inertial data are stored in said performance database.
 15. The method according to claim 1, wherein said device is co-located with a camera that generates said video data.
 16. The method according to claim 1, wherein said device is separate and independent from a camera that generates said video data.
 17. The method according to claim 1, wherein said performance database and said video database are the same database, with separate records for performance data and for video data.
 18. The method according to claim 1, further comprising using additional meta data to speed up matching of performance and video data.
 19. The method according to claim 16, wherein said step of using additional meta data comprises using a user's name or ID to simplify a search.
 20. A system, comprising: a device configured to be carried by a user during a sporting activity, said device having at least one GPS sensor that generates GPS data; a video camera configured to generate video data; and, a processing system configured to: (a) process said GPS data to identify at least one event engaged in by the user; (b) store data identifying said at least one event in a performance database; (c) access video data in a video database, the video data comprising location, time, and direction information associated with frames of video; (d) synchronize timecode data in said video database with timecode data in said performance database; and, (e) use said data identifying at least one event to automatically select, annotate, tag or edit said video data.
 21. The system of claim 20, wherein said device to be carried by a user comprises a sensor-based device, wherein said receiving step comprises receiving inertial data from the sensor-based device, and wherein said processing step comprises processing said inertial data.
 22. The system of claim 20, wherein the user is a sportsman and the event is a sporting event.
 23. The system according to claim 20, wherein said device is configured to be carried attached to the user's equipment or clothing.
 24. The system according to claim 20, wherein said at least one event identified by said processing system comprises an event selected from the set consisting of: a jump, a flip, a rotation, a high speed portion, a turn, or a fast turn.
 25. The system according to claim 20, wherein the device is a portable device comprising at least one GPS sensor and at least one inertial sensor.
 26. The system according to claim 20, wherein said processing system is embedded in said sensor-based device.
 27. The system according to claim 20, wherein said processing system is a separate device from said sensor-based device.
 28. The system according to claim 20, wherein said processing system is a server.
 29. The system according to claim 20, wherein said GPS data and said inertial data are stored in said performance database.
 30. The system according to claim 20, wherein said device is co-located with said video camera.
 31. The system according to claim 20, wherein said device is separate and independent from said video camera.
 32. The system according to claim 20, wherein said performance database and said video database are the same database, with separate records for performance data and for video data.
 33. A computer program product comprising a non-transitory computer readable storage medium having computer readable program code embodied in the medium for implementing a method, the computer program product comprising: program code for receiving, in a processing system, GPS data from a device carried by a user during a sporting activity, said GPS data comprising at least one of: position data or time data; program code for processing said GPS data in said processing system to identify at least one event engaged in by the user; program code for storing data identifying said at least one event in a performance database; program code for storing video data in a video database, the video data comprising location, time, and direction information associated with frames of video; program code for synchronizing timecode data in said video database with timecode data in said performance database; and, program code for using said data identifying at least one event to automatically select, annotate, tag or edit said video data. 